The prevalence of automated systems, such as computer operating systems and database management systems, has given rise to computer systems which are themselves used to determine the status of, and to monitor, such automated systems. These program products that are used to oversee automated systems are sometimes termed monitoring or status facilities.
Determining the status of a software product in operation (assessing whether the product is in a “healthy state”) may not be straightforward to accomplish programmatically. The information required to determine the health of a product or operating system may vary greatly over time. A monitoring program must be flexible enough to manage variations which can occur while an operating system or software product is active. This difficulty arises, for example, in systems that support dynamic reconfiguration of the number of CPUs on the system, the amount of memory on the system or the number of products on the system. Similarly, where products are self-tuning, monitoring facilities are required to change dynamically with the products. Where the facility providing a monitoring function is itself a significant drain on the resources of the system, the monitoring function may itself create system resource problems.
Due to the complexity in software products and operating systems, the information required by a monitoring system may not be readily available. The root cause of a problem with a system may be at a low level that is difficult to monitor on a continuous basis. As the monitoring process may interfere with the normal behavior of a product or system it would be advantageous to provide a monitoring facility that will selectively monitor aspects of the system, as required.
In complex computer systems different products exist in a heterogeneous environment and different monitoring facilities are typically provided for different products. The status of these different products are independently available and are not linked to each other. Similarly, where upgrades to products can occur without the operating system being taken off-line, the monitoring facility will ideally continue to operate and establish communication with the upgraded version of the product without requiring that the monitoring facility itself be restarted.
It is therefore desirable to provide a status facility that is dynamic, efficient to operate, and provides a single interface for obtaining the status of different software and other system components. The present invention addresses such a need.